#ifndef _SCENE_TREE_H
#define _SCENE_TREE_H
#include <string>

class SceneNode;

class SceneTree
{
public:
	SceneTree();
	~SceneTree();
	void addChild(const std::string &path, SceneNode *node);
	void makePath(const std::string &path);
	void removeChild(const std::string &path);
	const SceneNode *getChild(const std::string &path)const;
	SceneNode *getChild(const std::string &path);
	std::string getPathList(void);
private:
	class NameExtractor
	{
	public:
		NameExtractor(std::string names);
		~NameExtractor();
		std::string getName();
	private:
		std::string mNameString;
		std::string::size_type mPos;
		std::string::size_type mCount;
	};
	SceneNode *mRoot;
};

#endif	//_SCENE_TREE_H